package com.javatimes.test.util;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

import net.sf.json.JSONObject;
import net.sf.json.JsonConfig;
import net.sf.json.processors.JsonValueProcessor;

/**
 * @desc JSON格式为日期类型处理类   --> 最终显示   yyyyy-mm-dd 形式
 * 			 实现JsonValueProcessor接口,此接口是JSON值转换接口
 */
public class DateJsonValueProcessor implements JsonValueProcessor{
	//格式化日期的格式   
	private String format = "yyyy-MM-dd";
	
  public DateJsonValueProcessor() 
  {
  }
  
  public Object processArrayValue(Object value, JsonConfig jsonConfig){
    return process(value, jsonConfig);
  }

  public Object processObjectValue(String key, Object value, JsonConfig jsonConfig){
    return process(value, jsonConfig);
  }
  //对日期型格式的处理
  private Object process(Object value, JsonConfig jsonConfig ){
  	if(value == null){
  		return new JSONObject(true);
  	}
  	
    if( value instanceof java.sql.Date ){
    	value = new Date( ((java.sql.Date) value).getTime());
    }
    
    else if( value instanceof java.sql.Time ){
    	value = new Date( ((java.sql.Time) value).getTime());
    }else if( value instanceof java.sql.Timestamp){
    	value = new Date( ((java.sql.Timestamp) value).getTime());
    }
    
    else if( value instanceof Calendar ){
    	value = ((Calendar)value).getTime();
    }
    return new SimpleDateFormat(format).format(value);
  }

	public String getFormat(){
		return format;
	}

	public void setFormat(String format){
		this.format = format;
	}
}

